﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using QuanCafe.QuanCafe_BUS_WebService;
using System.Threading;

namespace QuanCafe
{
    public partial class frmNV_CapNhatAnh : Form
    {
        #region Khởi tạo các biến

        QuanCafe_BUS_WebServiceSoapClient ws = new QuanCafe_BUS_WebServiceSoapClient();

        private string _tenanh;

        // tạo 1 biến kiểu nhanvien
        private NhanVienDTO _nhanVienTruc = new NhanVienDTO();


        #endregion


        #region Khai báo các delegate

        // viết delegate truyền dữ liệu qua FrmTrangChu
        public delegate void SendLink2FrmTrangChu(bool flag);
        // tạo sự kiện 
        public SendLink2FrmTrangChu Send2TrangChu;

        #endregion


        #region Khởi tạo ban đầu


        public frmNV_CapNhatAnh(string manhanvien, string matkhau, string linkanh)
        {
            InitializeComponent();
            ptbAnhDaiDien.ImageLocation = linkanh;
            _nhanVienTruc.Manhanvien = manhanvien;
            _nhanVienTruc.Matkhau = matkhau;
            _nhanVienTruc.Anhdaidien = linkanh;
        }

        private void ptbAnhDaiDien_LoadProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            probAnhDaiDien.Visible = true;
        }

        private void ptbAnhDaiDien_LoadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            probAnhDaiDien.Visible = false;
        }
   

        #endregion 

        private void btnChonAnh_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "Open File";
            openFileDialog1.Filter = "Image Files(*.bmp;*.jpg;*.gif;*.png;*.ico)| (*.bmp;*.jpg;*.gif;*.png;*.ico)|All files (*.*)|*.*";
            openFileDialog1.FileName = "";

            try
            {
                openFileDialog1.InitialDirectory = "C:\\Temp";
            }
            catch
            {
                // skip it 
            }

            openFileDialog1.ShowDialog();

            if (openFileDialog1.FileName == "") // nếu người ta ko chọn
            {
                return;
            }
            else
            {
                // để đường dẫn lên textbox
                txtAnhDaiDien.Text = openFileDialog1.FileName;
                // sau dó hi?n ?nh lên
                ptbAnhDaiDien.ImageLocation = openFileDialog1.FileName;
                // lấy ra tên ảnh
                _tenanh = Path.GetFileName(openFileDialog1.FileName);
            }
        }

        private void btnDongY_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtAnhDaiDien.Text != string.Empty) // nếu có thay đổi ảnh thì cập nhật ảnh
                {
                    // kiểm tra tên ảnh có trùng với trên server chưa
                    if (_tenanh == Path.GetFileName(_nhanVienTruc.Anhdaidien))
                    {
                        // xuất thông báo không up dc
                        MessageBox.Show("Tên ảnh đã bị trùng trên server, vui lòng chọn với tên khác!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    // up ảnh lên
                    // gọi thread
                    Thread thread_uploadAnh = new Thread(uploadAnhdaidien);
                    thread_uploadAnh.SetApartmentState(ApartmentState.STA);
                    thread_uploadAnh.Start();
                    // gọi hàm cập nhật ảnh đại diện
                    bool flag = ws.NV_CapNhatAnhDaiDienThanhCong(_nhanVienTruc.Manhanvien, _nhanVienTruc.Matkhau, _tenanh);
                    if (flag == true)
                    {
                        // xuất thông báo
                        MessageBox.Show("Cập nhật ảnh thành công", "Congratulation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật ảnh thất bại", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.Close();
                    }

                    // truyền dữ liệu qua formTrangChu
                    this.Send2TrangChu(flag);
                    this.Close();
                }
            }
            catch
            {
                MessageBox.Show("Cập nhật ảnh thất bại","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                this.Close();
            }
        }


        #region Xử lý chính


        #endregion


        #region Xứ lý với thread

        // upload ảnh lên
        public void uploadAnhdaidien()
        {
            ws.Image_UploadNhanVien(txtAnhDaiDien.Text);
        }

        #endregion

        private void btnHuyBo_Click(object sender, EventArgs e)
        {
            this.Close();
        }


    }
}
